The present invention pertains to a video display terminal. More particularly, the present invention pertains to a self-synchronous video display terminal having a self-linked direct memory access, permitting substantially continuous scrolling of the display, including split screen scrolling in which a portion, but not all, of the display is scrolled.
Video display terminals are commonly used to display information of interest to numerous people. Typically such terminals can display at one time 24 or more character rows of text material, with each character row including numerous characters, for example up to 132 characters. Many terminals also can provide graphical displays. Most such terminals generate their displays in a dot matrix pattern utilizing a television raster scan technique. In such systems each character row is formed of several scan lines, and so one scan line of every character in a row is generated on the display device, followed by the next scan line of every character of that row, etc. Within each scan line each character portion is formed as a pattern of dots, with the dots being formed by blanking or unblanking of the cathode ray tube beam. The dots are generated at a dot rate determined in accordance with the scan line interval, the number of characters per row, and the number of dots per character. Once the beam has progressed through its raster scan pattern to the bottom of the display screen, it returns to the top to commence scanning of a new frame. A vertical synchronization signal occurs with each frame, enables synchronization of the entire system, and initiates a vertical retrace interval during which control functions can take place.
Often there is more material which it is desired to display than can be displayed at one time. This is particularly true when displaying text or alphanumerical material. In such situations, one "page" of text material can be displayed in a continuous display for an interval of time sufficient to permit the user to read or otherwise utilize all of that material, following which that page of material can be replaced by a new page. Such a technique is not altogether satisfactory, however, because different users of the terminal will read or otherwise utilize the material at different rates, and so either each page of material remains available on the display for a time appropriate for someone who reads it comparatively rapidly, with the result that a slower reader does not have sufficient time to read it all, or each page remains on the display for a sufficient time for the slower reader to utilize it, with the result that the faster reader must wait after he has read to the bottom of each page of the display. Further, in many applications it is often desired to display a large amount of text material and the user may wish to go back and forth between different locations in the material. If the material is on separate pages, it is inconvenient to search for a particular portion of the material.
Techniques have been developed for causing the text material in a display to scroll; i.e., to move upwardly or downwardly a row at a time. By way of example, in an upward scroll the top line of characters in the display is removed, the remaining lines are moved up one line, and a new line of characters is inserted at the bottom of the display. Most of the existing terminals permitting such scrolling, however, utilize a "jump scroll" technique in which at set intervals, such as one second intervals, the top line of the display is erased, the remaining lines moved upward, and a new line inserted at the bottom. U.S. Pat. No. 3,921,148, the disclosure of which is incorporated herein by reference, discloses such a terminal, with the scrolling technique particularly being set out at column 15, line 45 through column 17, line 55 of that patent in conjunction with FIGS. 8, 9, and 10 of the patent. This technique is undesirable since the displayed material periodically jumps upward and it is difficult for the reader to follow the display, and so difficult for him to read the material. Additionally, the majority of such jump scroll techniques require that all of the characters in the display be stored in contiguous storage locations within the display memory. While this is not a problem when the display is first generated, if it is desired to insert a new line into the middle of the display, then all of the characters stored at later or higher addressed locations must be moved to make room for the new line of characters. Further, in such systems the entire display must be scrolled; it is not possible to provide a split screen display in which a portion of the display is scrolled, with the remainder staying fixed.
One technique for providing substantially continuous scrolling of the display, including if desired a split screen display, involves storing a coded representation of the data characters of each character row of the display in encoded data words, each having as many bytes as there are characters in the character row as well as having a control byte indicating the number of the first scan line of that character row which is to be displayed during the current frame and indicating any attributes for that character row such as enlarged character size, blinking of the character row, reversed background, or different intensity of the display for that character row, and at the start of each character row of the display having the central processing unit of the display terminal apply further control signals to the direct memory access controller indicating the number of scan lines of the character row which are to be displayed during that frame and the memory address of the first byte within the data word for the next character row to be displayed. By incrementing the number of the first scan line to be displayed and decrementing the number of scan lines to be displayed, a character row can be scrolled off the display. Likewise, by incrementing the number of scan lines to be displayed, a new character row can be scrolled onto the display. This approach, however, necessitates interrupting the central processing unit at the end of each character row in order to obtain these further control signals. During the first frame of a continuous scroll, when a new row of characters is first being inserted and an old row is being removed, only one scan line of that new row is displayed and all but one scan line of the old character row are displayed. During each of the following frames another scan line is added to the new character row and another scan line is removed from the old. In the last frame of the scroll, then, all but one scan line of the new row are presented and only one scan line of the old. As a consequence, during the first and the last frames of the scroll, there must be a central processing unit interrupt at the beginning of each of two consecutive scan lines. During each interrupt, the central processing unit must transfer to the direct memory access controller the aforementioned further control signals. When the next interrupt is to occur after only one scan line, there is not sufficient time for the central processing unit to transfer the further control signals. In existing video display terminals permitting substantially continuous scrolling and split screen scrolling, this problem is overcome by utilization of an auxiliary two byte storage port to which the central processing unit applies control information as to the scroll in advance of the scroll boundaries and to which the direct memory access controller is steered at the boundaries of the scroll to obtain that information. Nevertheless, a great deal of processing time is required by this technique, as well as a considerable amount of hardware.